Laravel 5のDBのmigration
Eloquentでモデルを作成しておけばマイグレーションも容易?
いいえ。LaravelはEloquent(Active recordみたいなもの)を定義してもmigrationはやってくれません
Djangoとかはやってくれるらしい
別途migration scriptを書く必要があります。ここではその手順をまとめます
マイグレーションの手順
マイグレーションクラスを作成する
php artisan make:migration create_tweets_table
スキーマを書く
マイグレーションを実行してDBにテーブルを作成する
php artisan migrate
単一のファイルのみのマイグレーションはできなそう?
はじめからやりなおす
php artisan migrate:refresh
ダミーデータを作りたいときはseedingをする
indexをはりたい
bigIncremets('id')をすると自動的にprimary keyになる
IDカラムはprimary keyでしょ!という思想
Auto-incrementing UNSIGNED BIGINT (primary key) equivalent column.
bigIncrements('id')->primary()とかするとmigrationでエラーになる
トラブル
$table->timestamps()でcreate_at, updated_atをつくると型がtimestampになってしまう
php artisan migrate:refreshで全部のテーブルが消し飛ぶ。一部のテーブルだけrefreshしたい
基本的にそういう事はできないのだが、migrationの情報を管理しているテーブルを書き換えるとできる
初期開発時以外ではやるべきではない(migrationスクリプトを新規追加するべき)
ロールバックしたい